单位
each_buff
遍历状态
- 参数
- name (string) - 状态名
- 遍历
- buff (buff) - 遍历到的状态
当指定了name
后只会遍历到该名称的状态,否则遍历所有状态。
for buff in unit:each_buff '状态名' do
-- buff为遍历到的状态
end
each_skill
遍历技能
- 参数
- type (string) - 技能类型
- 遍历
- skill (skill) - 遍历到的技能
如果指定了type
,则会遍历到所有技能类型为type
的技能;否则会遍历到所有技能。总是可以遍历到0级技能。
for skill in unit:each_skill '英雄' do
-- skill为遍历到的技能
end
event
注册事件
- 参数
- name (string) - 事件名
- callback (function) - 事件函数
- 返回
- trigger (trigger) - 触发器
- 事件参数
- trigger (trigger) - 触发器
- ... (...) - 自定义数据
这是对base.event_register
方法的封装,你可以在这里看到详细说明。
local trigger = unit:event('单位-离开视野', function (trigger, unit)
-- 你的代码
end)
event_notify
触发事件
- 参数
- name (string) - 事件名
- ... (...) - 自定义数据
这是对base.event_notify
方法的封装,你可以在这里看到详细说明。
unit:event_notify('自定义事件', ...)
find_skill
寻找技能
- 参数
- name (string/integer) - 技能名/格子
- type (string) - 技能类型
- 返回
- skill (skill) - 技能
指定type
后只在此类型中寻找技能。如果name
使用格子,那么必须要指定type
。可以找到0级技能。
local skill = unit:find_skill('技能名')
local skill = unit:find_skill(0, '英雄')
get
获取属性
- 参数
- state (string) - 单位属性
- 返回
- value (number/string) - 数值或字符串
客户端并不一定能获取到单位的真实属性,这取决于单位是否可以见以及这个属性的同步方式。
local value = unit:get '生命'
get_class
获取类别
- 返回
- class (string) - 单位类别
如果并不知道这个单位的类别是什么,则返回"未知"
。
local class = unit:get_class()
get_data
获取数据
- 返回
- data (table) - 数据表
获取这个单位在UnitData中对应的数据表。等价于base.table.unit[unit:get_name()]
,因此如果单位名不正确(通常是因为不知道单位名是什么)则会返回nil
。
get_facing
获取朝向
- 返回
- facing (number) - 朝向
如果单位不可见,则返回0.0
。
local facing = unit:get_facing()
get_height
获取高度
- 返回
- height (number) - 高度
如果单位不可见,则返回0.0
。
local height = unit:get_height()
get_name
获取名字
- 返回
- name (string) - 单位名
如果并不知道这个单位的名字是什么,则会返回空字符串。
local name = unit:get_name()
get_owner
获取所有者
- 返回
- owner (player) - 所有者
如果并不知道这个单位的所有者是谁,则返回nil
。
local owner = unit:get_owner()
get_point
获取位置
- 返回
- point (point) - 点
如果单位不可见,则点为(0.0, 0.0, 0.0)
。
local point = unit:get_point()
get_socket_point
获取socket位置以及朝向
- 返回
- x (number) - X坐标
- y (number) - Y坐标
- z (number) - Z坐标
- a (number) - Pitch
- b (number) - Yaw
- c (number) - Roll
local x, y, z, a, b, c = unit:get_socket_point(socketname)
get_tag
获取类型
- 返回
- type (string) - 单位类型
如果并不知道这个单位的类型是什么,则返回"未知"
。
local type = unit:get_tag()
get_xy
获取坐标
- 返回
- x (number) - X坐标
- y (number) - Y坐标
如果单位不可见,则返回0.0, 0.0
。
local x, y = unit:get_xy()
is_visible
是否可见
- 返回
- result (boolean) - 是否可见
单位由不可见变为可见时触发单位-进入视野事件;由可见变为不可见时触发单位-离开视野事件。
local res = unit:is_visible()
cast
- 返回
- 参数
- name(string) 技能名
- target(point/unit/..) 目标,具体类型视技能目标类型而定
- data(table) 自定义数据
unit:cast('飞雷神-扔', 0)
attach_to
将单位附着在别的单位上,注意该单位的碰撞仍然在原处
- 参数
- target (unit) - 目标单位
- socket (string) - 可以不填,或者填target上的socket名字
unit:attach_to(target, socket)
attach_model
附加模型
- 参数
- path 模型prefab文件所在目录
- hand_point 模型附加到的关节/绑点名,如果没有或者没找到会挂到单位原点
- hold_point 模型附加后hand_point相对于模型原点的位置,旋转,缩放,prefab文件里存在basic_info的sockets里
detach_model
附加模型
- 参数
- path 模型prefab文件所在目录
change_model
改变单位的模型
- 参数
- path 模型prefab所在目录
get_highlight
获取是否高亮
local on_or_off = unit:get_highlight()
set_highlight
设置高亮
- 参数
- on 开或者关
- color_r 颜色通道r
- color_g 颜色通道g
- color_b 颜色通道b
- color_a 颜色通道a
- time 持续时间,填0表示永久生效
unit:set_highlight(true, { })
get_xray_enable
获取遮挡显示是否可用
local enable = unit:get_xray_enable()
set_xray_enable
- 参数
- on 开或者关
设置遮挡显示是否可用
unit:set_xray_enable(true)